package com.cloudkinto.vo.order.outbound;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * @author long
 */
@Data
public class TransferOutboundPickingDetail {
    private Long id;
    @ApiModelProperty("客户id")
    private Long companyId;
    @ApiModelProperty("出库单号")
    private String outboundNo;
    @ApiModelProperty("出库方式 1按产品 2按箱")
    private Integer outboundMode;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("总数")
    private Integer totalNum;
    @ApiModelProperty("按产品的数据")
    private List<PickingListBySku> pickingListBySkuList = new ArrayList<>();
    @ApiModelProperty("按箱的数据")
    private List<PickingListByBox> pickingListByBoxList = new ArrayList<>();

    @Data
    public static class PickingListBySku {
        private Long outboundProductId;
        private Long productId;
        private String sku;
        @ApiModelProperty("产品条码")
        private String mainBarcode;
        private String fnsku;
        @ApiModelProperty("预报出库产品数")
        private Integer forecastQty;
        @ApiModelProperty("实际出库产品数")
        private Integer outboundQty;
        private List<CellInfo> cellInfoList = new ArrayList<>();
    }

    @Data
    public static class PickingListByBox {
        private Long outboundProductId;
        private String boxTypeNumber;
        @ApiModelProperty("自定义箱条码")
        private String customizeBarcode;
        private BigDecimal height;
        private BigDecimal length;
        private BigDecimal width;
        private BigDecimal weight;
        @ApiModelProperty("预报出库箱数")
        private Integer forecastBoxQty;
        @ApiModelProperty("实际出库箱数")
        private Integer outboundBoxQty;
        private List<CellInfo> cellInfoList = new ArrayList<>();
    }
}
